//
//  LoadInitializeTest.h
//  Charles
//
//  Created by Charles on 2019/6/15.
//  Copyright © 2019 charles. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

/*
 |                            +(void)load                      +(void)initialize    |
 |----------------------------------------------------------------------------------|
 |执行时机                    程序运行后立即执行                  在类的方法第一次调用时执行  |
 |----------------------------------------------------------------------------------|
 |若自身未实现，是否调用父类方法       否                                    是           |
 |----------------------------------------------------------------------------------|
 |类别中的实现               全都执行，但是调用在类之后               覆盖类中的方法，只执行一个|
 |----------------------------------------------------------------------------------|
 */
@interface Pet : NSObject

- (void)speak;

@end

@interface Cat : Pet

@end

@interface Cat (Function)

@end

@interface LoadInitializeTest : NSObject

+ (void)loadInitializeTest;

@end

NS_ASSUME_NONNULL_END
